Skip to main content

APO Server

APO is divided into two parts:

  • APO-server: The server-side component of APO.
  • APO-one-agent: The client-side component of APO, used to collect information about monitored services, clusters, and hosts in Kubernetes clusters or virtual machine environments.

This document contains instructions for installing and running APO-server on a Kubernetes cluster using Helm Chart.

Note: It is not recommended to install APO-server and APO-one-agent in the same Kubernetes cluster using the method described in this document, as it may lead to unnecessary resource waste. If you wish to deploy APO-server and APO-one-agent in the same Kubernetes cluster, please refer to the Quick Start document.

Prerequisites

  1. A minimum hardware resource of 4 cores and 8GB of memory is required. Disk resources depend on your monitoring scale, with a minimum of 50GB.
  2. To install APO using Helm, ensure the following steps are completed:
    • Install a Kubernetes server on your machine. For information on installing Kubernetes, refer to the official documentation Installing Kubernetes.
    • Install the latest stable version of Helm. For information on installing Helm, refer to Installing Helm.
  3. Network Firewall Configuration: Open the necessary ports as described in Appendix 1: Network Port List.
  4. If you are using a K8s cluster provided by a cloud service provider: It is recommended to follow the Production Environment Deployment Recommendations to manage APO's ClickHouse and VictoriaMetrics or use non-persistent configurations. For details, see: Cloud Provider Cluster Database Creation Failure.

Setting Up the APO Helm Repository

To set up the APO Helm repository to download the correct APO Helm charts on your machine, complete the following steps:

Use the following commands to add the apo Helm repository:

helm repo add apo https://clouddetail.github.io/apo-helm-charts
helm repo update apo

Configuring APO Components

Create a file named apo-values.yaml and define it according to your requirements, then mount the configuration during the deployment phase.

# APO-server configuration
# Persistent configuration, recommended to enable, default is false
# If persistent configuration is enabled, create PV for the component based on PVC
global:
baseURL: "http://xxx.xxx.xxx.xxx" # FIXME, Change this to the IP address or domain name used to access the APO-server via a web browser. No port number is required. It must be the same as the node where apo-dify’s hostPath is located

altinity-clickhouse-operator:
clickhouse:
persistence:
enabled: true
victoria-metrics-single:
server:
persistentVolume:
enabled: true
apo-backend:
persistence:
enabled: true
apo-dify:
hostPath: "/data/apo/dify"
nodeSelector:
kubernetes.io/hostname: <NODENAME> # FIXME, The node name specified in hostPath for apo-dify.

Deploying APO Helm Charts

Run the following command to deploy APO in the specified namespace.

helm install apo apo/apo -n apo --create-namespace \
-f apo-values.yaml

Verification

Enter the following command to check if the pods have started successfully:

kubectl get po -n apo
info

Encountering Issues: You can refer to 《Troubleshooting》 for further troubleshooting, or contact us.

Accessing APO

You can access APO through the following methods, where NodeIP is the IP address of any node in the cluster.

  • APO Guided Observability Platform Address: http://<NodeIP>:31364; Default Username/Password: admin/APO2024@admin

img-1

  • Grafana Address: http://<NodeIP>:31364/#/system-dashboard

img-2

Next Steps: Monitoring Servers and Applications

Please refer to the documentation to install APO-one-agent for monitoring servers and applications:

Updates and Uninstallation

Updating APO Helm Charts Configuration

If your APO configuration has been updated, use the following command to update after modifying the apo-values.yaml file:

helm upgrade apo apo/apo -n apo \
-f apo-values.yaml

Uninstalling APO Helm Charts

kubectl delete clickhouseinstallation apo -napo
helm uninstall apo -n apo
kubectl delete ns apo

Additional Configurations

This document provides the basic configuration for APO deployment. If you need to make more configuration changes, download the values.yaml file from the APO Helm Charts repository:

helm show values apo/apo > values.yaml

Appendix

Appendix 1 Network Port List

  • APO-server needs to expose the following ports to desktop browsers for access, all of which can be changed through deployment configurations:
Component NameOpen PortDescription
apo-front31364APO Guided Observability Platform Frontend
  • APO-server needs to expose the following ports to APO-one-agent nodes for data collection, all of which can be changed through deployment configurations:
Component NameOpen PortDescription
apo-collector30044For receiving trace sampling data
apo-vector30310For receiving and processing log data
apo-otel-collector-gateway30317For receiving observability data, OTLP gRPC protocol
apo-otel-collector-gateway30319For receiving K8s cluster data, OTLP gRPC protocol
apo-backend31363For providing query API services

Appendix 2: Deploying APO Community Edition

By default, APO installs the Enterprise Edition, which offers enhanced data analysis capabilities compared to the Community Edition. For details on the differences, please refer to the Version Comparison.

Notice

The Enterprise Edition features of APO are currently in free public beta testing! 🔥

If you prefer to use the Community Edition, please add the following parameter to the installation command:

--set global.edition=ce